home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / nddeapi.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  14.3 KB  |  405 lines

  1. /************************************************************************
  2. * Copyright (c) Wonderware Software Development Corp. 1991-1993.        *
  3. *               All Rights Reserved.                                    *
  4. * Copyright (c) Microsoft Inc. 1995                                     *
  5. *               All Rights Reserved.                                    *
  6. ************************************************************************/
  7.  
  8. #ifndef _INC_NDDEAPI
  9. #define _INC_NDDEAPI
  10. #pragma option push -b
  11.  
  12.  
  13. #include <pshpack1.h>   /* Assume byte packing throughout */
  14.  
  15.  
  16. #ifdef __cplusplus
  17. extern "C" {            /* Assume C declarations for C++ */
  18. #endif    /* __cplusplus */
  19.  
  20. #ifndef CNLEN           /* If not included with netapi header */
  21. #define CNLEN           15                  /* Computer name length     */
  22. #define UNCLEN          (CNLEN+2)           /* UNC computer name length */
  23. #endif /* CNLEN */
  24.  
  25. // the choice of this char affects legal share,topic, etc. names
  26. #define SEP_CHAR    ','
  27. #define BAR_CHAR    "|"
  28. #define SEP_WCHAR   L','
  29. #define BAR_WCHAR   L"|"
  30.  
  31. /* API error codes  */
  32. #define NDDE_NO_ERROR                   0
  33. #define NDDE_ACCESS_DENIED              1
  34. #define NDDE_BUF_TOO_SMALL              2
  35. #define NDDE_ERROR_MORE_DATA            3
  36. #define NDDE_INVALID_SERVER             4
  37. #define NDDE_INVALID_SHARE              5
  38. #define NDDE_INVALID_PARAMETER          6
  39. #define NDDE_INVALID_LEVEL              7
  40. #define NDDE_INVALID_PASSWORD           8
  41. #define NDDE_INVALID_ITEMNAME           9
  42. #define NDDE_INVALID_TOPIC             10
  43. #define NDDE_INTERNAL_ERROR            11
  44. #define NDDE_OUT_OF_MEMORY             12
  45. #define NDDE_INVALID_APPNAME           13
  46. #define NDDE_NOT_IMPLEMENTED           14
  47. #define NDDE_SHARE_ALREADY_EXIST       15
  48. #define NDDE_SHARE_NOT_EXIST           16
  49. #define NDDE_INVALID_FILENAME          17
  50. #define NDDE_NOT_RUNNING               18
  51. #define NDDE_INVALID_WINDOW            19
  52. #define NDDE_INVALID_SESSION           20
  53. #define NDDE_INVALID_ITEM_LIST         21
  54. #define NDDE_SHARE_DATA_CORRUPTED      22
  55. #define NDDE_REGISTRY_ERROR            23
  56. #define NDDE_CANT_ACCESS_SERVER        24
  57. #define NDDE_INVALID_SPECIAL_COMMAND   25
  58. #define NDDE_INVALID_SECURITY_DESC     26
  59. #define NDDE_TRUST_SHARE_FAIL          27
  60.  
  61. /* string size constants */
  62. #define MAX_NDDESHARENAME       256
  63. #define MAX_DOMAINNAME          15
  64. #define MAX_USERNAME            15
  65. #define MAX_APPNAME             255
  66. #define MAX_TOPICNAME           255
  67. #define MAX_ITEMNAME            255
  68.  
  69. /* connectFlags bits for ndde service affix */
  70. #define NDDEF_NOPASSWORDPROMPT  0x0001
  71. #define NDDEF_NOCACHELOOKUP     0x0002
  72. #define NDDEF_STRIP_NDDE        0x0004
  73.  
  74.  
  75. /* NDDESHAREINFO - contains information about a NDDE share */
  76.  
  77. struct NDdeShareInfo_tag {
  78.     LONG                    lRevision;
  79.     LPTSTR                  lpszShareName;
  80.     LONG                    lShareType;
  81.     LPTSTR                  lpszAppTopicList;
  82.     LONG                    fSharedFlag;
  83.     LONG                    fService;
  84.     LONG                    fStartAppFlag;
  85.     LONG                    nCmdShow;
  86.     LONG                    qModifyId[2];
  87.     LONG                    cNumItems;
  88.     LPTSTR                  lpszItemList;
  89. };
  90. typedef struct NDdeShareInfo_tag   NDDESHAREINFO;
  91. typedef struct NDdeShareInfo_tag * PNDDESHAREINFO;
  92.  
  93. /*  Share Types */
  94. #define SHARE_TYPE_OLD      0x01                // Excel|sheet1.xls
  95. #define SHARE_TYPE_NEW      0x02                // ExcelWorksheet|sheet1.xls
  96. #define SHARE_TYPE_STATIC   0x04                // ClipSrv|SalesData
  97.  
  98. /*
  99.     Add new share
  100. */
  101. UINT WINAPI
  102. NDdeShareAddA (
  103.     LPSTR                   lpszServer, // server to execute on ( must be NULL )
  104.     UINT                    nLevel,     // info level must be 2
  105.     PSECURITY_DESCRIPTOR    pSD,        // initial security descriptor (optional)
  106.     LPBYTE                  lpBuffer,   // contains (NDDESHAREINFO) + data
  107.     DWORD                   cBufSize    // sizeof supplied buffer
  108. );
  109.  
  110. UINT WINAPI
  111. NDdeShareAddW (
  112.     LPWSTR                  lpszServer, // server to execute on ( must be NULL )
  113.     UINT                    nLevel,     // info level must be 2
  114.     PSECURITY_DESCRIPTOR    pSD,        // initial security descriptor (optional)
  115.     LPBYTE                  lpBuffer,   // contains (NDDESHAREINFO) + data
  116.     DWORD                   cBufSize    // sizeof supplied buffer
  117. );
  118.  
  119. /*
  120.     Delete a share
  121. */
  122. UINT WINAPI
  123. NDdeShareDelA (
  124.     LPSTR   lpszServer,     // server to execute on ( must be NULL )
  125.     LPSTR   lpszShareName,  // name of share to delete
  126.     UINT    wReserved       // reserved for force level (?) 0 for now
  127. );
  128.  
  129. UINT WINAPI
  130. NDdeShareDelW (
  131.     LPWSTR  lpszServer,     // server to execute on ( must be NULL )
  132.     LPWSTR  lpszShareName,  // name of share to delete
  133.     UINT    wReserved       // reserved for force level (?) 0 for now
  134. );
  135.  
  136. /*
  137.     Get Share Security Descriptor
  138. */
  139.  
  140. UINT WINAPI
  141. NDdeGetShareSecurityA(
  142.     LPSTR                   lpszServer,     // server to execute on ( must be NULL )
  143.     LPSTR                   lpszShareName,  // name of share to delete
  144.     SECURITY_INFORMATION    si,             // requested information
  145.     PSECURITY_DESCRIPTOR    pSD,            // address of security descriptor
  146.     DWORD                   cbSD,           // size of buffer for security descriptor
  147.     LPDWORD                 lpcbsdRequired  // address of required size of buffer
  148. );
  149.  
  150. UINT WINAPI
  151. NDdeGetShareSecurityW(
  152.     LPWSTR                  lpszServer,     // server to execute on ( must be NULL )
  153.     LPWSTR                  lpszShareName,  // name of share to delete
  154.     SECURITY_INFORMATION    si,             // requested information
  155.     PSECURITY_DESCRIPTOR    pSD,            // address of security descriptor
  156.     DWORD                   cbSD,           // size of buffer for security descriptor
  157.     LPDWORD                 lpcbsdRequired  // address of required size of buffer
  158. );
  159.  
  160. /*
  161.     Set Share Security Descriptor
  162. */
  163.  
  164. UINT WINAPI
  165. NDdeSetShareSecurityA(
  166.     LPSTR                   lpszServer,     // server to execute on ( must be NULL )
  167.     LPSTR                   lpszShareName,  // name of share to delete
  168.     SECURITY_INFORMATION    si,             // type of information to set
  169.     PSECURITY_DESCRIPTOR    pSD             // address of security descriptor
  170. );
  171.  
  172. UINT WINAPI
  173. NDdeSetShareSecurityW(
  174.     LPWSTR                  lpszServer,     // server to execute on ( must be NULL )
  175.     LPWSTR                  lpszShareName,  // name of share to delete
  176.     SECURITY_INFORMATION    si,             // type of information to set
  177.     PSECURITY_DESCRIPTOR    pSD             // address of security descriptor
  178. );
  179.  
  180. /*
  181.     Enumerate shares
  182. */
  183. UINT WINAPI
  184. NDdeShareEnumA (
  185.     LPSTR   lpszServer,         // server to execute on ( NULL for local )
  186.     UINT    nLevel,             //  0 for null separated 00 terminated list
  187.     LPBYTE  lpBuffer,           // pointer to buffer
  188.     DWORD   cBufSize,           // size of buffer
  189.     LPDWORD lpnEntriesRead,     // number of names returned
  190.     LPDWORD lpcbTotalAvailable  // number of bytes available
  191. );
  192.  
  193. UINT WINAPI
  194. NDdeShareEnumW (
  195.     LPWSTR  lpszServer,         // server to execute on ( NULL for local )
  196.     UINT    nLevel,             //  0 for null separated 00 terminated list
  197.     LPBYTE  lpBuffer,           // pointer to buffer
  198.     DWORD   cBufSize,           // size of buffer
  199.     LPDWORD lpnEntriesRead,     // number of names returned
  200.     LPDWORD lpcbTotalAvailable  // number of bytes available
  201. );
  202.  
  203. /*
  204.     Get information on a share
  205. */
  206. UINT WINAPI
  207. NDdeShareGetInfoA (
  208.     LPSTR   lpszServer,         // server to execute on ( must be NULL )
  209.     LPSTR   lpszShareName,      // name of share
  210.     UINT    nLevel,             // info level must be 2
  211.     LPBYTE  lpBuffer,           // gets struct containing (NDDESHAREINFO) + data
  212.     DWORD   cBufSize,           // sizeof buffer
  213.     LPDWORD lpnTotalAvailable,  // number of bytes available
  214.     LPWORD  lpnItems            // item mask for partial getinfo (must be 0)
  215. );
  216.  
  217. UINT WINAPI
  218. NDdeShareGetInfoW (
  219.     LPWSTR  lpszServer,         // server to execute on ( must be NULL )
  220.     LPWSTR  lpszShareName,      // name of share
  221.     UINT    nLevel,             // info level must be 2
  222.     LPBYTE  lpBuffer,           // gets struct containing (NDDESHAREINFO) + data
  223.     DWORD   cBufSize,           // sizeof buffer
  224.     LPDWORD lpnTotalAvailable,  // number of bytes available
  225.     LPWORD  lpnItems            // item mask for partial getinfo (must be 0)
  226. );
  227.  
  228. /*
  229.     Modify DDE share data
  230. */
  231. UINT WINAPI
  232. NDdeShareSetInfoA (
  233.     LPSTR   lpszServer,         // server to execute on ( must be NULL )
  234.     LPSTR   lpszShareName,      // name of share
  235.     UINT    nLevel,             // info level must be 2
  236.     LPBYTE  lpBuffer,           // points to struct with (NDDESHAREINFO) + data
  237.     DWORD   cBufSize,           // sizeof buffer
  238.     WORD    sParmNum            // Parameter index ( must be 0 - entire )
  239. );
  240.  
  241. UINT WINAPI
  242. NDdeShareSetInfoW (
  243.     LPWSTR  lpszServer,         // server to execute on ( must be NULL )
  244.     LPWSTR  lpszShareName,      // name of share
  245.     UINT    nLevel,             // info level must be 2
  246.     LPBYTE  lpBuffer,           // points to struct with (NDDESHAREINFO) + data
  247.     DWORD   cBufSize,           // sizeof buffer
  248.     WORD    sParmNum            // Parameter index ( must be 0 - entire )
  249. );
  250.  
  251. /*
  252.     Set/Create a trusted share
  253. */
  254.  
  255. UINT WINAPI
  256. NDdeSetTrustedShareA (
  257.     LPSTR   lpszServer,         // server to execute on ( must be NULL )
  258.     LPSTR   lpszShareName,      // name of share to delete
  259.     DWORD   dwTrustOptions      // trust options to apply
  260. );
  261.  
  262. UINT WINAPI
  263. NDdeSetTrustedShareW (
  264.     LPWSTR  lpszServer,         // server to execute on ( must be NULL )
  265.     LPWSTR  lpszShareName,      // name of share to delete
  266.     DWORD   dwTrustOptions      // trust options to apply
  267. );
  268.  
  269.                                             /*  Trusted share options       */
  270. #define NDDE_TRUST_SHARE_START  0x80000000L     // Start App Allowed
  271. #define NDDE_TRUST_SHARE_INIT   0x40000000L     // Init Conv Allowed
  272. #define NDDE_TRUST_SHARE_DEL    0x20000000L     // Delete Trusted Share (on set)
  273. #define NDDE_TRUST_CMD_SHOW     0x10000000L     // Use supplied cmd show
  274. #define NDDE_CMD_SHOW_MASK      0x0000FFFFL     // Command Show mask
  275.  
  276. /*
  277.     Get a trusted share options
  278. */
  279.  
  280. UINT WINAPI
  281. NDdeGetTrustedShareA (
  282.     LPSTR       lpszServer,         // server to execute on ( must be NULL )
  283.     LPSTR       lpszShareName,      // name of share to query
  284.     LPDWORD     lpdwTrustOptions,   // trust options in effect
  285.     LPDWORD     lpdwShareModId0,    // first word of share mod id
  286.     LPDWORD     lpdwShareModId1     // second word of share mod id
  287. );
  288.  
  289. UINT WINAPI
  290. NDdeGetTrustedShareW (
  291.     LPWSTR      lpszServer,         // server to execute on ( must be NULL )
  292.     LPWSTR      lpszShareName,      // name of share to query
  293.     LPDWORD     lpdwTrustOptions,   // trust options in effect
  294.     LPDWORD     lpdwShareModId0,    // first word of share mod id
  295.     LPDWORD     lpdwShareModId1     // second word of share mod id
  296. );
  297.  
  298.  
  299. /*
  300.     Enumerate trusted shares
  301. */
  302. UINT WINAPI
  303. NDdeTrustedShareEnumA (
  304.     LPSTR   lpszServer,         // server to execute on ( NULL for local )
  305.     UINT    nLevel,             //  0 for null separated 00 terminated list
  306.     LPBYTE  lpBuffer,           // pointer to buffer
  307.     DWORD   cBufSize,           // size of buffer
  308.     LPDWORD lpnEntriesRead,     // number of names returned
  309.     LPDWORD lpcbTotalAvailable  // number of bytes available
  310. );
  311.  
  312. UINT WINAPI
  313. NDdeTrustedShareEnumW (
  314.     LPWSTR  lpszServer,         // server to execute on ( NULL for local )
  315.     UINT    nLevel,             //  0 for null separated 00 terminated list
  316.     LPBYTE  lpBuffer,           // pointer to buffer
  317.     DWORD   cBufSize,           // size of buffer
  318.     LPDWORD lpnEntriesRead,     // number of names returned
  319.     LPDWORD lpcbTotalAvailable  // number of bytes available
  320. );
  321.  
  322. /*
  323.     Convert error code to string value
  324. */
  325. UINT WINAPI
  326. NDdeGetErrorStringA (
  327.     UINT    uErrorCode,         // Error code to get string for
  328.     LPSTR   lpszErrorString,    // buffer to hold error string
  329.     DWORD   cBufSize            // sizeof buffer
  330. );
  331.  
  332. UINT WINAPI
  333. NDdeGetErrorStringW (
  334.     UINT    uErrorCode,         // Error code to get string for
  335.     LPWSTR  lpszErrorString,    // buffer to hold error string
  336.     DWORD   cBufSize            // sizeof buffer
  337. );
  338.  
  339. /*
  340.     Validate share name format
  341. */
  342. BOOL WINAPI
  343. NDdeIsValidShareNameA (
  344.     LPSTR shareName
  345. );
  346.  
  347. BOOL WINAPI
  348. NDdeIsValidShareNameW (
  349.     LPWSTR shareName
  350. );
  351.  
  352. /*
  353.     Validate application/topic list format
  354. */
  355. BOOL WINAPI
  356. NDdeIsValidAppTopicListA (
  357.     LPSTR targetTopic
  358. );
  359.  
  360. BOOL WINAPI
  361. NDdeIsValidAppTopicListW (
  362.     LPWSTR targetTopic
  363. );
  364.  
  365. #ifdef UNICODE
  366. #define NDdeShareAdd            NDdeShareAddW
  367. #define NDdeShareDel            NDdeShareDelW
  368. #define NDdeSetShareSecurity    NDdeSetShareSecurityW
  369. #define NDdeGetShareSecurity    NDdeGetShareSecurityW
  370. #define NDdeShareEnum           NDdeShareEnumW
  371. #define NDdeShareGetInfo        NDdeShareGetInfoW
  372. #define NDdeShareSetInfo        NDdeShareSetInfoW
  373. #define NDdeGetErrorString      NDdeGetErrorStringW
  374. #define NDdeIsValidShareName    NDdeIsValidShareNameW
  375. #define NDdeIsValidAppTopicList NDdeIsValidAppTopicListW
  376. #define NDdeSetTrustedShare     NDdeSetTrustedShareW
  377. #define NDdeGetTrustedShare     NDdeGetTrustedShareW
  378. #define NDdeTrustedShareEnum    NDdeTrustedShareEnumW
  379. #else
  380. #define NDdeShareAdd            NDdeShareAddA
  381. #define NDdeShareDel            NDdeShareDelA
  382. #define NDdeSetShareSecurity    NDdeSetShareSecurityA
  383. #define NDdeGetShareSecurity    NDdeGetShareSecurityA
  384. #define NDdeShareEnum           NDdeShareEnumA
  385. #define NDdeShareGetInfo        NDdeShareGetInfoA
  386. #define NDdeShareSetInfo        NDdeShareSetInfoA
  387. #define NDdeGetErrorString      NDdeGetErrorStringA
  388. #define NDdeIsValidShareName    NDdeIsValidShareNameA
  389. #define NDdeIsValidAppTopicList NDdeIsValidAppTopicListA
  390. #define NDdeSetTrustedShare     NDdeSetTrustedShareA
  391. #define NDdeGetTrustedShare     NDdeGetTrustedShareA
  392. #define NDdeTrustedShareEnum    NDdeTrustedShareEnumA
  393. #endif
  394.  
  395. #ifdef __cplusplus
  396. }
  397. #endif    /* __cplusplus */
  398.  
  399.  
  400. #include <poppack.h>
  401.  
  402.  
  403. #pragma option pop
  404. #endif  /* _INC_NDDEAPI */
  405.